package net.hn.hnms.biz.gasext.dws.mapper;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.hn.hnms.biz.gasext.dws.domain.DwdRydwRyssDPo;
import net.hn.hnms.biz.gasext.dws.domain.dto.DwdRydwHistoricalDataDto;
import net.hn.hnms.biz.gasext.dws.domain.vo.DwdRydwHistoricalDataVo;
import net.hn.hnms.biz.gasext.dws.domain.vo.DwdRydwRyssDVo;
import net.hn.hnms.sys.common.mybatis.core.page.PageQuery;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@DS(value = "dwd")
public interface DwdRydwRyssDMapper extends BaseMapper<DwdRydwRyssDPo> {
    /**
     * 根据煤矿编码，查询实时数据
     *
     * @param pageSize
     * @param pageNum
     * @param dto
     * @return
     */
    List<DwdRydwHistoricalDataVo> selectHistoricalDataList(@Param("pageSize") Integer pageSize,
                                                           @Param("pageNum") Integer pageNum,
                                                           @Param("mineCodeList") List<String> mineCodeList,
                                                           @Param("dto") DwdRydwHistoricalDataDto dto);

    /**
     * 根据煤矿编码 和人员卡编码列表 查询当前煤矿的最新数据列表
     * @param mineCode
     * @param jzbmList
     * @return
     */
    List<DwdRydwRyssDVo> selectRyssListByMineCodeAndJzbmList(@Param("mineCode") String mineCode, @Param("jzbmList") List<String> jzbmList, @Param("pageQuery")PageQuery pageQuery,@Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * 查询最新的人员定位实时数据
     *
     * @param mineCode
     * @param pageQuery
     * @return
     */
    List<DwdRydwRyssDVo> selectRyssListByMineCode(@Param("mineCode") String mineCode, @Param("pageQuery") PageQuery pageQuery, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("tzry") String tzry);


    /**
     * 根据煤矿编码和姓名和入井时间查询轨迹
     * @param name
     * @param inTime
     * @param mineCode
     * @return
     */
    DwdRydwRyssDPo getHisTrailByName(@Param("name") String name, @Param("code") String code, @Param("inTime") String inTime, @Param("dataUpTime") String dataUpTime, @Param("mineCode") String mineCode);

}
